SQLAlchemy তে Engine এবং Connection দুটি গুরুত্বপূর্ণ উপাদান, যা ডেটাবেসের সাথে যোগাযোগ স্থাপন এবং অপারেশন পরিচালনা করতে ব্যবহৃত হয়। এগুলোর মূল ভূমিকা বুঝতে পারলে আপনি SQLAlchemy এর মাধ্যমে ডেটাবেসের সাথে কার্যকরভাবে কাজ করতে পারবেন।
Engine
Engine হল SQLAlchemy এর একটি প্রধান উপাদান যা ডেটাবেসের সাথে সংযোগ স্থাপন করে এবং SQL স্টেটমেন্টগুলি কার্যকর করতে ব্যবহৃত হয়। এটি ডেটাবেস সেশনের জন্য সুরক্ষিত কানেকশন পুল তৈরি করে এবং ডেটাবেসে বিভিন্ন কার্যক্রমের জন্য একটি কেন্দ্রীয় ইন্টারফেস প্রদান করে।
Engine এর বৈশিষ্ট্য:
- ডেটাবেস সংযোগ:
Engineডেটাবেসের সাথে সংযোগ স্থাপন এবং সংরক্ষণ করতে ব্যবহৃত হয়। এটি ডেটাবেস কনফিগারেশন ও অপারেশন পরিচালনা করতে সাহায্য করে। - Connection Pooling: SQLAlchemy নিজেই ডেটাবেস সংযোগগুলোর একটি পুল তৈরি করে, যা একই সংযোগ পুনরায় ব্যবহার করতে সাহায্য করে, ফলে কর্মক্ষমতা বাড়ে এবং সংযোগ ব্যবস্থাপনা সহজ হয়।
- ট্রানজেকশন ম্যানেজমেন্ট:
Engineডেটাবেসে ট্রানজেকশন পরিচালনা করতে সহায়ক হয়। এটি সংযোগ এবং ট্রানজেকশন পরিচালনার জন্য প্রয়োজনীয় সরঞ্জাম সরবরাহ করে। - ডেটাবেসের মধ্যে একাধিক সেশন পরিচালনা: একাধিক ডেটাবেস সেশন তৈরি এবং পরিচালনা করতে সক্ষম।
উদাহরণ:
from sqlalchemy import create_engine
# MySQL ডেটাবেসের জন্য ইঞ্জিন তৈরি
engine = create_engine('mysql+pymysql://username:password@localhost/mydatabase')
# ডেটাবেসের সাথে সংযোগ স্থাপন
connection = engine.connect()
print("Database connected successfully!")
# সংযোগ বন্ধ করা
connection.close()
এখানে engine হল ডেটাবেসের সাথে সংযোগ স্থাপনের কেন্দ্রীয় পয়েন্ট এবং create_engine ফাংশনটি ডেটাবেসের সংযোগ স্ট্রিং থেকে ইঞ্জিন তৈরি করে।
Connection
Connection হলো SQLAlchemy তে একটি অবজেক্ট, যা একটি একক ডেটাবেস সংযোগ প্রতিনিধিত্ব করে। এটি SQLAlchemy এর ইঞ্জিনের মাধ্যমে ডেটাবেসের সাথে যোগাযোগ স্থাপন এবং SQL কমান্ডগুলি কার্যকর করতে ব্যবহৃত হয়। Connection অবজেক্টের মাধ্যমে আপনি ডেটাবেসে সোজাসুজি অপারেশন (যেমন, SQL কোয়েরি চালানো, ডেটা ইনসার্ট, আপডেট ইত্যাদি) করতে পারেন।
Connection এর বৈশিষ্ট্য:
- SQL কমান্ড এক্সিকিউট করা:
Connectionঅবজেক্টের মাধ্যমে আপনি SQL কমান্ড, যেমনSELECT,INSERT,UPDATE,DELETEইত্যাদি চালাতে পারেন। - ট্রানজেকশন পরিচালনা: এটি ডেটাবেসে ট্রানজেকশন পরিচালনা করতে ব্যবহৃত হয় (যেমন, commit(), rollback())।
- ডেটাবেসের মধ্যে একাধিক অপারেশন পরিচালনা: একাধিক SQL স্টেটমেন্ট একযোগে বা ধারাবাহিকভাবে কার্যকর করতে ব্যবহৃত হয়।
উদাহরণ:
from sqlalchemy import create_engine
# SQLite ডেটাবেসের জন্য ইঞ্জিন তৈরি
engine = create_engine('sqlite:///example.db', echo=True)
# ডেটাবেসের সাথে সংযোগ স্থাপন
connection = engine.connect()
# SQL কমান্ড চালানো
result = connection.execute("SELECT * FROM users")
for row in result:
print(row)
# সংযোগ বন্ধ করা
connection.close()
এখানে connection অবজেক্টের মাধ্যমে SQL স্টেটমেন্ট চালানো হয়েছে এবং ফলাফলটি প্রিন্ট করা হয়েছে।
Engine এবং Connection এর মধ্যে পার্থক্য
| বিষয় | Engine | Connection |
|---|---|---|
| কাজ | ডেটাবেসের সাথে সংযোগ স্থাপন এবং সংরক্ষণ | ডেটাবেসের সাথে একক সংযোগে SQL কমান্ড এক্সিকিউট করা |
| ব্যবহার | একটি ডেটাবেসের সাথে সংযোগের কেন্দ্রীয় পয়েন্ট | SQL কমান্ড কার্যকর এবং ডেটাবেস অপারেশন পরিচালনা |
| ট্রানজেকশন | ট্রানজেকশন ম্যানেজমেন্টের জন্য ব্যবহার করা হয় | ট্রানজেকশন শুরু, কমিট এবং রোলব্যাক পরিচালনা |
| সংযোগের ধরণ | একাধিক সংযোগ পরিচালনা | একক সংযোগের মাধ্যমে ডেটাবেস অপারেশন |
সারাংশ
Engine এবং Connection SQLAlchemy এর গুরুত্বপূর্ণ উপাদান। Engine ডেটাবেসের সাথে সংযোগ স্থাপন করে এবং ডেটাবেসের সাথে একাধিক সেশন পরিচালনা করতে সহায়তা করে, যখন Connection একক ডেটাবেস সংযোগে SQL কমান্ড কার্যকর করে এবং ট্রানজেকশন পরিচালনা করতে ব্যবহৃত হয়। Engine ডেটাবেস ইন্টারফেসের কেন্দ্রীয় পয়েন্ট হিসেবে কাজ করে, আর Connection হচ্ছে ডেটাবেসের সাথে সরাসরি যোগাযোগের মাধ্যম।
Read more